package com.zzy.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class FileOperation {

	/**
	 * 创建文件
	 * 
	 * @param fileName
	 * @return
	 */
	public static boolean createFile(File fileName) throws Exception {
		boolean flag = false;
		try {
			if (!fileName.exists()) {
				fileName.createNewFile();
				flag = true;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return flag;
	}
	
	
	public static boolean  createFile(String HTML_PATH,String fileName){
		boolean flag=false;
		// 生成html文件
		String path = HTML_PATH;
		File f = new File(path);
		if (!f.exists()) {
			  f.mkdirs();
		}
		// fileName表示你创建的文件名；为txt类型；
		File file = new File(f, fileName);
		if (!file.exists()) {
			try {
				file.createNewFile();
				flag=true;
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return flag;
	}

	/**
	 * 读TXT文件内容
	 * 
	 * @param fileName
	 * @return
	 */
	public static String readTxtFile(File fileName) throws Exception {
		String result = null;
		FileReader fileReader = null;
		BufferedReader bufferedReader = null;
		try {
			fileReader = new FileReader(fileName);
			bufferedReader = new BufferedReader(fileReader);
			try {
				String read = null;
				while ((read = bufferedReader.readLine()) != null) {
					result = result + read + "\r\n";
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (bufferedReader != null) {
				bufferedReader.close();
			}
			if (fileReader != null) {
				fileReader.close();
			}
		}
		System.out.println("读取出来的文件内容是：" + "\r\n" + result);
		return result;
	}

	/**
	 * 写数据
	 * @Title:        title
	 * @Description:  TODO(这里用一句话描述这个方法的作用) 
	 * @param content
	 * @param fileName
	 * @return
	 * @throws Exception    
	 * @version       V2.0 
	 * @author       guokaige
	 * @Date          2016-11-29 上午9:57:56
	 */
	public static boolean writeTxtFile(String content, File fileName) throws Exception {
		boolean flag = false;
		FileOutputStream o = null;
		try {
			o = new FileOutputStream(fileName);
			o.write(content.getBytes("UTF-8"));
			flag = true;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			o.close();
		}
		return flag;
	}

	/**
	 * 读取数据到 文件
	 * @Title:        title
	 * @Description:  TODO(这里用一句话描述这个方法的作用) 
	 * @param filePath
	 * @param content    
	 * @version       V2.0 
	 * @author       guokaige
	 * @Date          2016-11-29 上午10:03:11
	 */
	public static void contentToTxt(String filePath, String content) {
		String str = new String(); // 原有txt内容
		String s1 = new String();// 内容更新
		try {
			File f = new File(filePath);
			
			//创建父级目录
			if(!f.getParentFile().exists()){
				boolean flag = f.getParentFile().mkdirs();
				if(!flag){
					System.out.println("创建父级目录失败！");
				}
			}
			
			if (f.exists()) {
				System.out.print("文件存在");
				f.delete();
				f.createNewFile();// 不存在则创建
			} else {
				System.out.print("文件不存在");
				f.createNewFile();// 不存在则创建
			}
			BufferedReader input = new BufferedReader(new FileReader(f));

			while ((str = input.readLine()) != null) {
				s1 += str + "\n";
			}
			System.out.println(s1);
			input.close();
			s1 += content;

			OutputStreamWriter writerStream = new OutputStreamWriter(new FileOutputStream(f),"UTF-8");
	        BufferedWriter output = new BufferedWriter(writerStream);
			output.write(s1);
			output.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}